We have presented the building block folding model. The model postulates that protein folding is a hierarchical top-down process. The basic unit from which a fold is constructed, referred to as a hydrophobic folding unit, is the outcome of combinatorial assembly of a set of "building blocks." Results obtained by the computational cutting procedure yield fragments that are in agreement with those obtained experimentally by limited proteolysis. We proposed a three-stage scheme for the prediction of a protein structure from its sequence. First, the sequence is cut to fragments that are each assigned a structure. Second, the assigned structures are combinatorially assembled to form the overall 3D organization. Third, highly ranked predicted arrangements are completed and refined. As expected, proteins from the same family give very similar building blocks. However, different proteins can also give building blocks that are similar in structure. In such cases the building blocks differ in sequence, stability, contacts with other building blocks, and in their 3D locations in the protein structure. This result, which we have repeatedly observed in many cases, led us to conclude that while a building block is influenced by its environment, nevertheless, it can be viewed as a stand-alone unit. With this conclusion in hand, it is possible to develop an algorithm that predicts the building block assignment of a protein sequence whose structure is unknown. Toward this goal, we have just updated our sequentially nonredundant database of building block sequences. A protein sequence can be aligned against these, in order to be matched to a set of potential building blocks. To address the first step, we have developed an assignment algorithm that selects optimal combinations to "cover" the protein sequence. Our results include proteins from different classes, with building blocks that are not necessarily assigned from the same protein class. These results are encouraging, indicating that folding by parts and part assembly may contribute to further progress in the protein-folding problem. Now the assignment has been automated and used to homology model protein structures. Toward the second step of this scheme, we developed CombDock, a combinatorial docking algorithm. CombDock gets an ordered set of protein sub-structures and predicts their overall organization. We reduce the combinatorial assembly to a graph-theory problem, and give a heuristic polynomial solution to this computationally hard problem. We tested CombDock using increasingly distorted input, where the native structural units were replaced by similarly folded units extracted from homologous proteins and, in the more difficult cases, from globally unrelated proteins. The algorithm is robust, showing low sensitivity to input distortion. Utilizing concepts of protein building blocks, we proposed a de novo computational algorithm that is similar to combinatorial shuffling experiments. Our goal is to engineer naturally occurring folds with low homology to existing proteins. A selected protein is first partitioned into its building blocks. The building blocks are substituted by fragments taken from other proteins with overall low sequence identity, but with a similar hydrophobic/hydrophilic pattern and a high structural similarity. The stabilities of the engineered proteins are tested by explicit water molecular dynamics simulations. The key in the design is using relatively stable fragments, with a high population time. We adopt a related (modified) strategy in nanodesign. Currently we are developing a CHARMM based scheme for an automated and efficient optimization of the nanotube. our goal is to carry out nanotube design using naturally occurring protein building blocks. We pick the nanotube geometry. Given this target geometry, our goal is to scan a library of candidate building block parts, combinatorially assembling them into the shape and testing the stability. Since self-assembly takes place on time scales not affordable for computations, we propose a strategy for the very first step in protein nanotube design: we map the candidate building blocks onto a planar sheet and wrap it around a cylinder with the target dimensions. Given the current limitations of the computational resources and the accuracy of the molecular mechanics force field, it is infeasible to carry out ab initio calculations in an attempt to self-assemble a nanostructure automatically. However, it is achievable to construct, rather than predict, an atomic model by incorporating any available experimental data such as images from electron microscopy (EM). On the technical side, the larger the wall thickness of the constructed nanotube and the building block size, and the smaller the tube diameter, the larger the design difficulty: the distortion of the interacting protein building blocks will increase. We study examples of protein nanotubes in atomistic model detail for which there are experimental data: so far two peptides and one protein. A constructed atomic nanostructure serves two main purposes. First, we may ask if a constructed nanostructure truly supports all available experimental data. If yes, the established atomic model will be valuable for further design toward a nanodevice. If no, the discrepancy between the constructed model and experimental data will be useful for the next round of construction. Second, in order to design a nanostructure with a specified geometry, the capability of constructing such a designed nanostructure is the very first step. Peter Grodzinski who was interested in our tube formation, also made the suggestion of experimenting with drugs. Currently experiment is checking some of our predicted synthetic residues in the nano structure stabilization scheme. We have also designed toxic amyloid channels in the lipid bilayer for the Alzheimer A-beta protein consistent with experiment.